#ifndef CPPOLYNOM1D_H
#define CPPOLYNOM1D_H

#include <TObject.h>
class CpPolynom1D : public TObject {
public:
   CpPolynom1D();
   ~CpPolynom1D();

   static Double_t Degree0(Double_t *x, Double_t *par);
   static Double_t Degree1(Double_t *x, Double_t *par);
   static Double_t Degree2(Double_t *x, Double_t *par);
   static Double_t Degree3(Double_t *x, Double_t *par);
   static Double_t Degree4(Double_t *x, Double_t *par);
   static Double_t Degree5(Double_t *x, Double_t *par);
   static Double_t Degree6(Double_t *x, Double_t *par);
   static Double_t Degree7(Double_t *x, Double_t *par);
   static Double_t Degree8(Double_t *x, Double_t *par);
   static Double_t Degree9(Double_t *x, Double_t *par);
   static Double_t Degree10(Double_t *x, Double_t *par);
   
   static Double_t DerivateXDegree0(Double_t *x, Double_t *par);
   static Double_t DerivateXDegree1(Double_t *x, Double_t *par);
   static Double_t DerivateXDegree2(Double_t *x, Double_t *par);
   static Double_t DerivateXDegree3(Double_t *x, Double_t *par);
   static Double_t DerivateXDegree4(Double_t *x, Double_t *par);
   static Double_t DerivateXDegree5(Double_t *x, Double_t *par);
   static Double_t DerivateXDegree6(Double_t *x, Double_t *par);
   static Double_t DerivateXDegree7(Double_t *x, Double_t *par);
   static Double_t DerivateXDegree8(Double_t *x, Double_t *par);
   static Double_t DerivateXDegree9(Double_t *x, Double_t *par);
   static Double_t DerivateXDegree10(Double_t *x, Double_t *par);
   
   static Double_t Derivate2XDegree0(Double_t *x, Double_t *par);
   static Double_t Derivate2XDegree1(Double_t *x, Double_t *par);
   static Double_t Derivate2XDegree2(Double_t *x, Double_t *par);
   static Double_t Derivate2XDegree3(Double_t *x, Double_t *par);
   static Double_t Derivate2XDegree4(Double_t *x, Double_t *par);
   static Double_t Derivate2XDegree5(Double_t *x, Double_t *par);
   static Double_t Derivate2XDegree6(Double_t *x, Double_t *par);
   static Double_t Derivate2XDegree7(Double_t *x, Double_t *par);
   static Double_t Derivate2XDegree8(Double_t *x, Double_t *par);
   static Double_t Derivate2XDegree9(Double_t *x, Double_t *par);
   static Double_t Derivate2XDegree10(Double_t *x, Double_t *par);
   static Int_t GetNumberOfParameters(Int_t grade);

   ClassDef(CpPolynom1D, 1);
};

#endif
